package com.codi.bus.util;

import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;

/**
 * 模块名
 *
 * @author spy
 * @version 1.0 2017-11-01 19:54
 * @since 1.0
 */
@Slf4j
public final class LookupUtil {

    public static boolean isJSONObject(String str) {
        return str.startsWith("{");
    }

    public static boolean isJSONArray(String str) {
        return str.startsWith("[");
    }


    public static String getT0FieldValueStr(String str, boolean isOrg, String field) {
        log.debug("str={},isOrg={},field={}", str, isOrg, field);

        if (isJSONObject(str)) {
            JSONObject jsonObject = JSONObject.parseObject(str);

            JSONObject valueObj = jsonObject.getJSONObject(isOrg ? "org" : "user");

            return valueObj == null ? null : valueObj.getString(field);
        }

        return str;
    }


    public static String addTOFieldValueStr(String str, boolean isOrg, String field, Object value) {
        log.debug("str={},isOrg={},field={}", str, isOrg, field);

        if (isJSONObject(str)) {
            JSONObject jsonObject = JSONObject.parseObject(str);

            jsonObject.put(field, value);

            return jsonObject == null ? null : JSONObject.toJSONString(jsonObject);
        }

        return str;
    }


    public static Integer getT0FieldValueInteger(String str, boolean isOrg, String field) {
        log.debug("str={},isOrg={},field={}", str, isOrg, field);

        if (isJSONObject(str)) {
            JSONObject jsonObject = JSONObject.parseObject(str);

            JSONObject valueObj = jsonObject.getJSONObject(isOrg ? "org" : "user");

            return valueObj.getIntValue(field);
        }

        return Integer.valueOf(str);
    }


    public static Long getT0FieldValueLong(String str, boolean isOrg, String field) {
        log.debug("str={},isOrg={},field={}", str, isOrg, field);

        if (isJSONObject(str)) {
            JSONObject jsonObject = JSONObject.parseObject(str);

            JSONObject valueObj = jsonObject.getJSONObject(isOrg ? "org" : "user");

            return valueObj.getLongValue(field);
        }

        return Long.valueOf(str);
    }


}
